﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Mecanica.Repositório
{
    public abstract class RepositorioGenerico<TEntidade> : Dominio.Repositorio.IRepositorio<TEntidade> where TEntidade : class, Dominio.Entidades.Core.IEntidade
    {
        protected RepositorioGenerico()
            : base()//IoC.GetInstance<Mecanica.Dominio.UoW.IUnitOfWork>())
        {
            Configuracao.SessionNHibernateModule sessao = new Configuracao.SessionNHibernateModule();
        }

        protected RepositorioGenerico(Mecanica.Dominio.UoW.IUnitOfWork unitOfWork)
        {
            UnitOfWork = unitOfWork;
        }

        #region IRepositorio<TEntidade> Members

        public Mecanica.Dominio.UoW.IUnitOfWork UnitOfWork { get; set; }
        
        public IEnumerable<TEntidade> Todos()
        {
            throw new NotImplementedException();
        }

        public int Adicionar(TEntidade entidade)
        {
            throw new NotImplementedException();
        }

        public void Deletar(TEntidade entidade)
        {
            throw new NotImplementedException();
        }

        public void Atualizar(TEntidade entidade)
        {
            throw new NotImplementedException();
        }

        public TEntidade BuscarPorId(long id)
        {
            throw new NotImplementedException();
        }

        public TEntidade CarregarPorId(long id)
        {
            throw new NotImplementedException();
        }

        public IEnumerable<TEntidade> BuscarPor(System.Linq.Expressions.Expression<Func<TEntidade, bool>> condicao)
        {
            throw new NotImplementedException();
        }

        #endregion
    }
}
